
package pt.sapo.services.metadata.epg;

import javax.xml.bind.JAXBElement;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlElementRef;
import javax.xml.bind.annotation.XmlType;


/**
 * <p>Java class for Channel complex type.
 * 
 * <p>The following schema fragment specifies the expected content contained within this class.
 * 
 * <pre>
 * &lt;complexType name="Channel">
 *   &lt;complexContent>
 *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
 *       &lt;sequence>
 *         &lt;element name="Name" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
 *         &lt;element name="Sigla" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
 *         &lt;element name="Type" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
 *         &lt;element name="Providers" type="{http://services.sapo.pt/Metadata/EPG}ArrayOfProvider" minOccurs="0"/>
 *         &lt;element name="Programs" type="{http://services.sapo.pt/Metadata/EPG}ArrayOfProgram" minOccurs="0"/>
 *         &lt;element name="Genre" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
 *         &lt;element name="Description" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
 *         &lt;element name="TunerPosition" type="{http://www.w3.org/2001/XMLSchema}int" minOccurs="0"/>
 *         &lt;element name="IsHD" type="{http://www.w3.org/2001/XMLSchema}boolean" minOccurs="0"/>
 *         &lt;element name="CanonicalName" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
 *         &lt;element name="PresentationId" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
 *         &lt;element name="ProductId" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
 *         &lt;element name="Image" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
 *       &lt;/sequence>
 *     &lt;/restriction>
 *   &lt;/complexContent>
 * &lt;/complexType>
 * </pre>
 * 
 * 
 */
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "Channel", propOrder = {
    "name",
    "sigla",
    "type",
    "providers",
    "programs",
    "genre",
    "description",
    "tunerPosition",
    "isHD",
    "canonicalName",
    "presentationId",
    "productId",
    "image"
})
public class Channel {

    @XmlElement(name = "Name")
    protected String name;
    @XmlElement(name = "Sigla")
    protected String sigla;
    @XmlElement(name = "Type")
    protected String type;
    @XmlElementRef(name = "Providers", namespace = "http://services.sapo.pt/Metadata/EPG", type = JAXBElement.class)
    protected JAXBElement<ArrayOfProvider> providers;
    @XmlElementRef(name = "Programs", namespace = "http://services.sapo.pt/Metadata/EPG", type = JAXBElement.class)
    protected JAXBElement<ArrayOfProgram> programs;
    @XmlElement(name = "Genre")
    protected String genre;
    @XmlElement(name = "Description")
    protected String description;
    @XmlElementRef(name = "TunerPosition", namespace = "http://services.sapo.pt/Metadata/EPG", type = JAXBElement.class)
    protected JAXBElement<Integer> tunerPosition;
    @XmlElementRef(name = "IsHD", namespace = "http://services.sapo.pt/Metadata/EPG", type = JAXBElement.class)
    protected JAXBElement<Boolean> isHD;
    @XmlElement(name = "CanonicalName")
    protected String canonicalName;
    @XmlElement(name = "PresentationId")
    protected String presentationId;
    @XmlElement(name = "ProductId")
    protected String productId;
    @XmlElement(name = "Image")
    protected String image;

    /**
     * Gets the value of the name property.
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    public String getName() {
        return name;
    }

    /**
     * Sets the value of the name property.
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setName(String value) {
        this.name = value;
    }

    /**
     * Gets the value of the sigla property.
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    public String getSigla() {
        return sigla;
    }

    /**
     * Sets the value of the sigla property.
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setSigla(String value) {
        this.sigla = value;
    }

    /**
     * Gets the value of the type property.
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    public String getType() {
        return type;
    }

    /**
     * Sets the value of the type property.
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setType(String value) {
        this.type = value;
    }

    /**
     * Gets the value of the providers property.
     * 
     * @return
     *     possible object is
     *     {@link JAXBElement }{@code <}{@link ArrayOfProvider }{@code >}
     *     
     */
    public JAXBElement<ArrayOfProvider> getProviders() {
        return providers;
    }

    /**
     * Sets the value of the providers property.
     * 
     * @param value
     *     allowed object is
     *     {@link JAXBElement }{@code <}{@link ArrayOfProvider }{@code >}
     *     
     */
    public void setProviders(JAXBElement<ArrayOfProvider> value) {
        this.providers = ((JAXBElement<ArrayOfProvider> ) value);
    }

    /**
     * Gets the value of the programs property.
     * 
     * @return
     *     possible object is
     *     {@link JAXBElement }{@code <}{@link ArrayOfProgram }{@code >}
     *     
     */
    public JAXBElement<ArrayOfProgram> getPrograms() {
        return programs;
    }

    /**
     * Sets the value of the programs property.
     * 
     * @param value
     *     allowed object is
     *     {@link JAXBElement }{@code <}{@link ArrayOfProgram }{@code >}
     *     
     */
    public void setPrograms(JAXBElement<ArrayOfProgram> value) {
        this.programs = ((JAXBElement<ArrayOfProgram> ) value);
    }

    /**
     * Gets the value of the genre property.
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    public String getGenre() {
        return genre;
    }

    /**
     * Sets the value of the genre property.
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setGenre(String value) {
        this.genre = value;
    }

    /**
     * Gets the value of the description property.
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    public String getDescription() {
        return description;
    }

    /**
     * Sets the value of the description property.
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setDescription(String value) {
        this.description = value;
    }

    /**
     * Gets the value of the tunerPosition property.
     * 
     * @return
     *     possible object is
     *     {@link JAXBElement }{@code <}{@link Integer }{@code >}
     *     
     */
    public JAXBElement<Integer> getTunerPosition() {
        return tunerPosition;
    }

    /**
     * Sets the value of the tunerPosition property.
     * 
     * @param value
     *     allowed object is
     *     {@link JAXBElement }{@code <}{@link Integer }{@code >}
     *     
     */
    public void setTunerPosition(JAXBElement<Integer> value) {
        this.tunerPosition = ((JAXBElement<Integer> ) value);
    }

    /**
     * Gets the value of the isHD property.
     * 
     * @return
     *     possible object is
     *     {@link JAXBElement }{@code <}{@link Boolean }{@code >}
     *     
     */
    public JAXBElement<Boolean> getIsHD() {
        return isHD;
    }

    /**
     * Sets the value of the isHD property.
     * 
     * @param value
     *     allowed object is
     *     {@link JAXBElement }{@code <}{@link Boolean }{@code >}
     *     
     */
    public void setIsHD(JAXBElement<Boolean> value) {
        this.isHD = ((JAXBElement<Boolean> ) value);
    }

    /**
     * Gets the value of the canonicalName property.
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    public String getCanonicalName() {
        return canonicalName;
    }

    /**
     * Sets the value of the canonicalName property.
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setCanonicalName(String value) {
        this.canonicalName = value;
    }

    /**
     * Gets the value of the presentationId property.
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    public String getPresentationId() {
        return presentationId;
    }

    /**
     * Sets the value of the presentationId property.
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setPresentationId(String value) {
        this.presentationId = value;
    }

    /**
     * Gets the value of the productId property.
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    public String getProductId() {
        return productId;
    }

    /**
     * Sets the value of the productId property.
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setProductId(String value) {
        this.productId = value;
    }

    /**
     * Gets the value of the image property.
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    public String getImage() {
        return image;
    }

    /**
     * Sets the value of the image property.
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setImage(String value) {
        this.image = value;
    }

}
